Generally, a node of a mesh network (e.g., a mesh radio network, a network using ZigBee standard IEEE 802.15.4, etc.) can communicate with another node in the network via a direct node-to-node communication (i.e., unicast). Unicasting involves the node preparing data (e.g., piece of data, data packet, etc.) with a destination address (e.g., identification information) of the receiver node as a part of the data, and then transmitting that data. Thus, the data itself is designated for a specific destination address (e.g., a specific node). Accordingly, even if the node is communicating to multiple nodes (i.e., multicast) in the mesh network, the data is prepared with destination addresses of the specific nodes that are to ultimately receive and use the data. This ensures that only the nodes that are predetermined by the sender ultimately receive and use the data.
Thus, if another node (i.e., not predetermined to be the recipient of the data) in the network receives the data, that node reads the destination address to see whether the destination address corresponds with that of the node. If the destination address corresponds with that of the node, the node saves and executes the entire data. The node does not transmit that data to any other node.
However, if the destination address does not correspond with that of the node, the node can simply delete the data from memory. The node can be configured to transmit such data so that there is a chance that the data can be transmitted to the proper node at the destination address embedded in the data.
If a plurality of nodes of the mesh network requires the same data, such as for example, firmware update data, the data can be transmitted from one node to another via the node-to-node communication. Accordingly, the process of distributing the data can involve communication from a first node to a second node. Further, even when the second node has the most recent firmware, it might be required to receive and resend the firmware update data so other nodes (e.g., a third node) can receive the data. Thus, transmission and retransmission of the same data can occur throughout at least a significant portion of the mesh network.
One of the nodes in a mesh network can be a system controller device. A system controller device (e.g., coordinator device) can queue the other nodes for communication and send data to each of the nodes, one by one. Such serial process can require the data be sent from the system controller device to a first node, and then from the first node to a second node, and so on. That is, even when the system controller device controls and coordinates the communication of the data to the nodes, one-by-one, one of the nodes may have to relay the same data more than once. That is, the transmission of the data may require multiple “hops” through the network. Thus, there can be a situation wherein the same data is transmitted more than once between and/or through one or more nodes. This kind of communication process requires queuing of every node by the controller device to transmit the same data to each of the destination nodes.
Another example of a communication process in the mesh network is via a broadcast communication, where a system controller device broadcasts the data to the nodes, and the nodes that are within range of the broadcast can receive the data. In order to transmit the data to the nodes that are outside the broadcast range from the system controller device, the nodes that have received the data can rebroadcast the data.